package com.lanswon.qzsmk.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.lanswon.qzsmk.model.SubaccountPersonal;


public interface SubaccountPersonalMapper {


	/**
	 * 保存
	 * @param cardWallet 卡钱包
	 */
	void insert(SubaccountPersonal cardWallet);
	
	/**
	 * 更新
	 * @param cardWallet
	 */
	void update(SubaccountPersonal cardWallet);
	
	/**
	 * 根据市民卡号查询
	 * @param citizenCardNo
	 * @param remark 
	 * @return
	 */
	List<SubaccountPersonal> querySubaccountPersonalByCitizenCardNoAndRemark(String citizenCardNo,String remark);
	
	/**
	 * 根据市民卡号查询
	 * @param citizenCardNo
	 * @param remark
	 * @return
	 */
	List<SubaccountPersonal>  querySubaccountPersonalByCitizenCardNo(String citizenCardNo);
	/**
	 * 根据市民卡号和账户状态查询
	 * @param citizenCardNo
	 * @param accountStatus
	 * @return
	 */
	List<SubaccountPersonal> querySubaccountPersonalOpenByCitizenCardNo(@Param("citizenCardNo")String citizenCardNo,@Param("accountStatus")String accountStatus);
	/**
	 * 根据应用标识号查询
	 * @param appFlag
	 * @return
	 */
	List<SubaccountPersonal> querySubaccountPersonalByAppFlag(@Param("appFlag")String appFlag,@Param("citizenCardNo")String citizenCardNo);

	/**
	 * 查询指定钱包
	 * @param appFlag 应用标识
	 * @param citizenCardNo 市民卡号
	 * @param walletType 钱包类型
	 * @return
	 */
	SubaccountPersonal querySubaccountPersonalByAppFlagAndWallet(@Param("appFlag")String appFlag,@Param("citizenCardNo")String citizenCardNo,@Param("walletType")String walletType);

	/**
	 * 查询指定钱包
	 * @param citizenCardNo
	 * @param walletType
	 * @return
	 */
	SubaccountPersonal querySubaccountPersonalByWallet(@Param("citizenCardNo")String citizenCardNo,@Param("walletType")String walletType);
	
	/**
	 * 查询所有卡钱包
	 * @return
	 */
	List<SubaccountPersonal> queryAllSubaccountPersonal();
}